package com.own.component.util.excel.util.read.function.resolve;

import com.alibaba.fastjson2.JSONObject;

import java.util.ArrayList;
import java.util.List;

/**
 * ResolveSimpleFunction
 *
 * @author chenxueli
 * @date 2022-09-23 10:32:00
 */
@FunctionalInterface
public interface ResolveSimpleFunction<T> extends ResolveFunction<T> {

    /**
     * 执行方法
     *
     * @param data 解析后的参数
     * @return 解析后的对象
     * @author chenxueli
     * @date 2022-06-15 03:14:15
     */
    T run(final JSONObject data);

    /**
     * 执行方法
     *
     * @param data        解析后的参数
     * @param dataList    已经添加进去的列表数据
     * @param messageList 消息存放位置
     * @return 解析后的对象
     * @author chenxueli
     * @date 2022-06-15 03:14:15
     */
    @Override
    default T run(final JSONObject data, final List<T> dataList, final ArrayList<String> messageList) {
        return run(data);
    }

}
